package com.srmt.document.feishu.internal.table;

import com.srmt.document.feishu.internal.table.model.TableType;

/**
 * 表格策略基础接口
 * 
 * 定义所有表格策略的基本行为，包括类型识别和支持判断。
 * 这是所有细粒度策略接口的父接口。
 * 
 * @author srmt
 * @since 5.0.0
 */
public interface TableStrategy {
    
    /**
     * 获取策略支持的表格类型
     * 
     * @return 表格类型
     */
    TableType getTableType();
    
    /**
     * 判断是否支持指定的Block类型
     * 
     * @param blockType Block类型编号
     * @return 是否支持
     */
    boolean supportsBlockType(int blockType);
    
    /**
     * 获取策略的描述信息
     * 
     * @return 策略描述
     */
    String getDescription();
    
    /**
     * 获取策略的名称
     * 
     * @return 策略名称
     */
    default String getName() {
        return getTableType().getTypeName() + " Strategy";
    }
}